/*
 * GbtDeviceKit.h
 *
 *  Created on: 2018年5月16日
 *      Author: zhengboyuan
 */

#ifndef GBTDEVICEKIT_H_
#define GBTDEVICEKIT_H_

#include "GbtDeviceAgent.h"
#include "GbtPtz.h"
#include "GbtTime.h"
#include "GbtCore.h"


namespace gbt
{


class DLLEXPORT GbtDeviceKit
{
public:
    GbtDeviceKit();
    virtual ~GbtDeviceKit();

    static const char* getVersion();

    static GBT_Version getGbtVersion();

    static void setGbtVersion(GBT_Version ver);

    /**
     * 根据PS文件路径, 创建媒体源.
     * @param filepath  PS文件路径
     * @param offsetMs 起始播放时间, 单位为毫秒
     * @return 媒体源
     */
    static MStreamSource* createStreamSource(const char* filepath, int64_t startTime, int64_t endTime);

    /**
     * 销毁媒体源.
     */
    static void destroyStreamSource(MStreamSource* source);

    /**
     * 根据多个PS文件, 创建媒体源.
     * @param records   PS文件数组
     * @param size  数组长度
     * @param startTime 起始播放时间, 单位为秒
     * @param endTime 结束播放时间, 单位为秒
     * @return 媒体源.
     */
    static MStreamSource* createStreamSource(const GBT_RecordUrl* records, int size, int64_t startTime, int64_t endTime);
    
};


}
#endif /* GBTDEVICEKIT_H_ */
